#!/bin/bash
# 用于将源数据库中的表暴力覆盖到目标库,需要提前安装mysql命令
# 注意：暴力覆盖会先删除目标库中的所有表，然后再进行表拷贝


HOST=localhost		#数据库IP
USER=root			#数据库用户名
PASSWD=1qaz2wsx		#数据库密码
PORT=3306

if [ $# -lt 2 ];then
	echo "Usage: sh $0 source_db_name table_list_file"
	exit 1
fi
source_db_name=$1	  # 源数据库名称
target_db_name=$2   # 目标数据库名称
table_list_file=$2  # 源数据库中需要拷贝到目标数据库的表名列表，每一行一个表名

# 清除目标数据库中的所有表
mysql -u$USER -p$PASSWD -h$HOST -P$PORT -D $target_db_name -N -B -e "show tables" > .temp
for table in $(< .temp);
do
	mysql -u$USER -p$PASSWD -h$HOST -P$PORT -D $target_db_name -N -B -e "drop table $table"
	echo "$table is deleted"
done

# 按照参数文件中的表名拷贝表结构
for table in $(< $table_list_file);
do
	mysql -u$USER -p$PASSWD -h$HOST -P$PORT -e "CREATE TABLE $target_db_name.$table like $source_db_name.$table"
	echo "$table is created"
done
